Visualization of physical interactions in augmented reality

ABSTRACT

An imaging device of a device captures an image. The device identifies a first and second object in the image, determines physical properties of the first and second object, generates a model of a predicted interaction between the first and second object based on the physical properties of the first and second object, identifies an area in the image based on the model of the predicted interaction between the first and second object, and augments the image at the area in a display of the device.

PRIORITY APPLICATION

This application in a continuation of U.S. patent application Ser. No.14/461,257, filed on Aug. 15, 2014, which is a continuation-in-part ofU.S. patent application Ser. No. 14/145,567, filed on Dec. 31, 2013, thedisclosures of which are incorporated herein in their entireties byreference.

TECHNICAL FIELD

The subject matter disclosed herein generally relates to the processingof data. Specifically, the present disclosure addresses systems andmethods for visualization of physical interactions in augmented reality.

BACKGROUND

A device can be used to generate and display data in addition to animage captured with the device. For example, augmented reality (AR) is alive, direct or indirect view of a physical, real-world environmentwhose elements are augmented by computer-generated sensory input such assound, video, graphics or GPS data. With the help of advanced ARtechnology (e.g., adding computer vision and object recognition) theinformation about the surrounding real world of the user becomesinteractive. Device-generated (e.g., artificial) information about theenvironment and its objects can be overlaid on the real world.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings.

FIG. 1 is a block diagram illustrating an example of a network suitablefor visualizing predicted interactions between physical objects,according to some example embodiments.

FIG. 2 is a block diagram illustrating an example embodiment of modules(e.g., components) of a viewing device.

FIG. 3 is a block diagram illustrating an example embodiment of modulesof a recognition module.

FIG. 4 is a block diagram illustrating an example embodiment of modulesof a physical characteristics module.

FIG. 5 is a block diagram illustrating an example embodiment of modulesof a server.

FIG. 6 is a ladder diagram illustrating an example embodiment of anoperation of object interactions visualization.

FIG. 7 is a ladder diagram illustrating another example embodiment of anoperation of object interactions visualization.

FIG. 8 is a flowchart illustrating an example operation of generatingvisualization of physical characteristics of real world objects in anaugmented reality application.

FIG. 9 is a flowchart illustrating an example operation of generatingvisualization of object interactions in an augmented realityapplication.

FIG. 10 is a flowchart illustrating an example operation ofvisualization of static and dynamic objects interactions in an augmentedreality application.

FIG. 11 is a flowchart illustrating an example operation ofvisualization of dynamic objects interactions in an augmented realityapplication.

FIG. 12 is a diagram illustrating an example operation of generating avisualization of dynamic and static object interactions in an augmentedreality application.

FIG. 13 is a diagram illustrating another example operation ofgenerating a visualization of dynamic object interactions in anaugmented reality application.

FIG. 14 is a block diagram illustrating components of a machine,according to some example embodiments, able to read instructions from amachine-readable medium and perform any one or more of the methodologiesdiscussed herein.

FIG. 15 is a block diagram illustrating a mobile device, according to anexample embodiment.

DETAILED DESCRIPTION

Example methods and systems are directed to visualization of a physicsmodel in augmented reality based on real world object dynamics. Examplesmerely typify possible variations. Unless explicitly stated otherwise,components and functions are optional and may be combined or subdivided,and operations may vary in sequence or be combined or subdivided. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth to provide a thorough understanding of exampleembodiments. It will be evident to one skilled in the art, however, thatthe present subject matter may be practiced without these specificdetails.

Augmented reality applications allow a user to experience information,such as in the form of a virtual object such as a three-dimensionalvirtual object overlaid on an image of a physical object captured with acamera of a viewing device. The physical object may include a visualreference (e.g., a recognized image, pattern, or object) that theaugmented reality application can identify. A visualization of theadditional information, such as the three-dimensional virtual objectoverlaid or engaged with an image of the physical object, is generatedin a display of the viewing device. The three-dimensional virtual objectmay be selected based on the recognized visual reference or capturedimage of the physical object. A rendering of the visualization of thethree-dimensional virtual object may be based on a position of thedisplay relative to the visual reference. Other augmented realityapplications allow a user to experience visualization of the additionalinformation overlaid on top of a view or an image of any object in thereal physical world. The virtual object may include a three-dimensionalvirtual object, a two-dimensional virtual object. For example, thethree-dimensional virtual object may include a three-dimensional view ofa chair or an animated dinosaur. The two-dimensional virtual object mayinclude a two-dimensional view of a dialog box, menu, or writteninformation such as statistics information for properties or physicalcharacteristics of the object (e.g., temperature, mass, velocity,tension, stress). An image of the virtual object may be rendered at theviewing device or at a server in communication with the viewing device.

A system and method for visualization of physical interactions betweenobjects are described. In one example embodiment, a sensor generateslive data corresponding to physical characteristics of one or moreobject identified in a scene captured by a viewing device. The scene mayinclude objects that are present within a field of view of the viewingdevice. Physical characteristics of the object are computed using thelive data at a server. A visualization of the physical characteristicsof the object is generated and communicated to the viewing deviceconfigured to capture an image of the objects in the scene. The viewingdevice augments the image of the object with the visualization of thephysical characteristics of the object.

In another example embodiment, the system and method for visualizationidentifies objects in a scene captured with a viewing device. The systemcomputes physical characteristics of the objects using data from sensorscorresponding to the objects. A physics model of predicted interactionsbetween the objects is generated using the physical characteristics ofthe objects. An interaction visualization is generated based on thephysics model of the predicted interactions between objects. The imageof the objects is augmented with the interaction visualization in adisplay of the viewing device. A characteristics visualization of thephysical characteristics of the objects is generated. The image of theobjects is augmented with the characteristics visualization of theobjects in the display of the viewing device. The data may include alive data stream from the sensors.

In another example embodiment, an area in the scene affected by thepredicted interactions between the objects is identified. A virtualobject corresponding to the area affected by the predicted interactionsis rendered. An image of the scene is augmented with the virtual objectat the identified area in the viewing device.

In another example embodiment, an area in the scene unaffected by thepredicted interactions between the one or more objects is identified. Avirtual object corresponding to the area unaffected by the predictedinteractions in the scene is rendered. An image of the scene isaugmented with the virtual object at the identified area.

In another example embodiment, a physics model for each identifiedobject is generated using the physical characteristics of thecorresponding identified object. The physics model of predictedinteractions is generated using the physics model of each identifiedobject.

In another example embodiment, a predicted trajectory of each identifiedobject within the scene is generated based on the physics model for eachidentified object. A predicted collision and a predicted collisionlocation of the one or more identified objects are identified based onthe predicted trajectories within the scene. An intensity of thepredicted collision is identified.

In another example embodiment, a physics model of a dynamic object fromthe objects is generated. A physics model of a static object from theobjects is generated. A physics model of the physical interactionbetween the dynamic object and the static object is generated. Areas inthe scene affected by the physical interaction between the dynamicobject and the static object are identified. An image of the identifiedareas in the scene is augmented.

In another example embodiment, a physics model of a first and a seconddynamic object from the objects is generated. A physics model of thephysical interaction between the first and second dynamic objects isgenerated. Areas in the scene affected by the physical interactionbetween the first and second dynamic objects are identified. An image ofthe identified areas in the scene is augmented.

In another example embodiment, a plurality of three-dimensionalsimulated trajectory paths within the scene based on a same sourcerelated to a first object in the scene are generated. Areas within thescene that are not affected by the plurality of three-dimensionalsimulated trajectory paths are identified. A second object that canwithstand an impact from the first object is identified using thephysical characteristics of the first object and the second objects. Animage of the second object is augmented in the display of the viewingdevice.

In another example embodiment, a non-transitory machine-readable storagedevice may store a set of instructions that, when executed by at leastone processor, causes the at least one processor to perform the methodoperations discussed within the present disclosure.

FIG. 1 is a network diagram illustrating a network environment 100suitable for operating an augmented reality application of a viewingdevice, according to some example embodiments. The network environment100 includes a viewing device 101 and a server 110, communicativelycoupled to each other via a network 108. The viewing device 101 and theserver 110 may each be implemented in a computer system, in whole or inpart, as described below with respect to FIGS. 2 and 5.

The server 110 may be part of a network-based system. For example, thenetwork-based system may be or include a cloud-based server system thatprovides additional information, such as three-dimensional models orother virtual objects, to the viewing device 101.

A user 102 may utilize the viewing device 101 to capture a view of ascene having several physical objects (e.g., object A 116, object B 118,object C 120, and object D 122) in a real world physical environment 114viewed by the user 102. The user 102 may be a human user (e.g., a humanbeing), a machine user (e.g., a computer configured by a softwareprogram to interact with the viewing device 101), or any suitablecombination thereof (e.g., a human assisted by a machine or a machinesupervised by a human). The user 102 is not part of the networkenvironment 100, but is associated with the viewing device 101 and maybe a user 102 of the viewing device 101. For example, the viewing device101 may be a computing device with a display such as a smartphone, atablet computer, a wearable computing device (e.g., watch or glasses),or a head-mounted computing device (e.g. helmet). The computing devicemay be hand held or may be removably mounted to the head of the user102. In one example, the display may be a screen that displays what iscaptured with a camera of the viewing device 101. In another example,the display of the viewing device 101 may be transparent orsemi-transparent such as in lenses of wearable computing glasses or thevisor of a helmet.

The user 102 may be a user of an augmented reality application in theviewing device 101 and at the server 110. The augmented realityapplication may provide the user 102 with an augmented experiencetriggered by identified objects in the physical environment 114. Thephysical environment 114 may include identifiable objects such as atwo-dimensional physical object (e.g., a picture), a three-dimensionalphysical object (e.g., a factory machine), a location (e.g., at thebottom floor of a factory), or any references (e.g., perceived cornersof walls or furniture) in the real world physical environment 114. Forexample, the user 102 may point a camera of the viewing device 101 tocapture an image of the objects 116, 118, 120, and 122.

In one embodiment, the objects in the image are tracked and recognizedlocally in the viewing device 101 using a local context recognitiondataset or any other previously stored dataset of the augmented realityapplication of the viewing device 101. The local context recognitiondataset module may include a library of virtual objects associated withreal-world physical objects or references. In one example, the viewingdevice 101 identifies feature points in an image of the objects 116,118, 120, 122 to determine different planes (e.g., edges, corners,surface). The viewing device 101 also identifies tracking data relatedto the objects 116, 118, 120, 122 (e.g., GPS location of a bridge,facing west, e.g., viewing device 101 standing x meters away from thebridge, etc.). If the captured image is not recognized locally at theviewing device 101, the viewing device 101 downloads additionalinformation (e.g., the three-dimensional model) corresponding to thecaptured image, from a database of the server 110 over the network 108.

In another embodiment, the objects 116, 118, 120, 122 in the image aretracked and recognized remotely at the server 110 using a remote contextrecognition dataset or any other previously stored dataset of anaugmented reality application in the server 110. The remote contextrecognition dataset module may include a library of virtual objectsassociated with real-world physical objects or references.

Sensors 112 may be associated with, coupled to, related to the objects116, 118, 120, and 122 in the physical environment to measure physicalproperties of the objects 116, 118, 120, and 122. Examples of measuredphysical properties may include and but are not limited to weight,pressure, temperature, velocity, direction, position, intrinsic andextrinsic properties, acceleration, and dimensions.

For example, sensors 112 may be disposed throughout a span of a bridgeto measure movement, pressure, orientation, temperature, etc. The server110 can compute physical characteristics of the bridge using the livedata generated by the sensors 112. The server 110 can compute the amountof stress at specific locations throughout the bridge as cars drive overthe bridge. The server 110 can generate virtual indicators such asvectors or colors based on the computed physical characteristics of thebridge. The virtual indicators are then overlaid on top of a live imageof the bridge to show the amount of real-time stress on the bridge. Forexample, the virtual indicators may include arrows with shapes andcolors that change based on real-time data. The visualization may beprovided to the viewing device 101 so that the viewing device 101 canrender the virtual indicators in a display of the viewing device 101. Inanother embodiment, the virtual indicators are rendered at the server110 and streamed to the viewing device 101. The viewing device 101displays the virtual indicators or visualization corresponding to adisplay of the physical environment 114. The virtual arrows arepositioned at locations corresponding to the amount of stress measuredon the bridge.

In another example, the sensors 112 may include a blood pressure andheart rate monitor coupled to a subject. For example, the server 110 cangenerate a picture or a virtual three-dimensional model of a heart witha beating animation with a pace corresponding to the measured heart ratefrom the sensors 112. The server 110 may change a color in correspondingportions of the heart based on the measured blood pressure. The liveanimation is provided to the viewing device 101 such that the picture ofthe heart is displayed on top of a chest area of the subject in thedisplay of the viewing device 101. The position of the picture of theheart may be determined based on the orientation and position of theviewing device 101 relative to the subject using sensors (e.g.,gyroscope) internal to the viewing device 101.

In another example, sensors (e.g., optical) may be used to capture thedirection of a car on a road or the direction of a bullet fired from apoint of origin. The server 110 can generate physical properties of thecar or the bullet such as direction and speed. The server 110 candetermine a path of the car or bullet based on the physical propertiesof the car or bullet. The server 110 may generate a visualization basedon the physical properties of the car or the bullet. For example, theserver 110 may generate a color filter to augment the image of the carin a different color based on the speed of the car. Furthermore, theserver 110 can generate a physics model of object interactions based onthe physical properties of the car or the bullet. For example, if aladder is misplaced on the road, the server 110 may identify the ladder,a position of the ladder on the road, a type of ladder, the speed of thecar, distance of the car from the ladder, and the weight of the car,among other physical properties, to generate a physics model of apredicted interactions (e.g. predicted collision path, predicted areasof impact, intensity of impact, etc.) between the car and the ladder.For example, the physics model may predict that the ladder may bounceoff the car during the impact with a predicted trajectory. Areas thatare susceptible to the predicted trajectory of the ladder resulting fromthe impact may be visualized by coloring those areas in the image of thescene. As such, areas of the road may appear red based on a highprobability of being run over by the car or being injured from debrisfrom the ladder. In another example, green areas in the image mayindicate safe areas that may not be affected by the car and the ladder.

In another example, the server 110 may determine whether objectsidentified within the scene can withstand and protect the user 102 frombeing hit by a bullet. For example, the server 110 may identify a woodenchair in the scene and a car in the scene. The server 110 may generate aphysics model of the bullet by determining predicted trajectories. Basedon the predicted trajectories and the location and properties of theidentified objects (e.g., wooden chair and car), the server 110 maygenerate an augmented visualization in the image by coloring safe areasin green and dangerous areas in red in the scene viewed by the user 102through the viewing device 101. Safe areas may include areas adjacent tothe car because the server 110 may determine that the car is strongenough to withstand bullets in contrast to a wooden chair.

The sensors 112 may include other sensors used to track the location,movement, and orientation of the viewing device 101 externally withouthaving to rely on the sensors internal to the viewing device 101. Thesensors 112 may include optical sensors (e.g., depth-enabled 3D camera),wireless sensors (Bluetooth, Wi-Fi), GPS sensor, and audio sensor todetermine the location of the user 102 having the viewing device 101,distance of the user 102 to the tracking sensors 112 in the physicalenvironment 114 (e.g., sensors placed in corners of a venue or a room),the orientation of the viewing device 101 to track what the user 102 islooking at (e.g., direction at which the viewing device 101 is pointed,viewing device 101 pointed towards a player on a tennis court, viewingdevice 101 pointed at a person in a room).

In another embodiment, data from the sensors 112 and internal sensors inthe viewing device 101 may be used for analytics data processing at theserver 110 (or another server) for analysis on usage and how the user102 is interacting with the physical environment 114. Live data fromother servers may also be used in the analytics data processing. Forexample, the analytics data may track at what locations (e.g., points orfeatures) on the physical or virtual object the user 102 has looked, howlong the user 102 has looked at each location on the physical or virtualobject, how the user 102 held the viewing device 101 when looking at thephysical or virtual object, which features of the virtual object theuser 102 interacted with (e.g., such as whether a user 102 tapped on alink in the virtual object), and any suitable combination thereof. Theviewing device 101 receives a visualization content dataset related tothe analytics data. The viewing device 101 then generates a virtualobject with additional or visualization features, or a new experience,based on the visualization content dataset.

Any of the machines, databases, or devices shown in FIG. 1 may beimplemented in a general-purpose computer modified (e.g., configured orprogrammed) by software to be a special-purpose computer to perform oneor more of the functions described herein for that machine, database, ordevice. For example, a computer system able to implement any one or moreof the methodologies described herein is discussed below with respect toFIGS. 12, 13. As used herein, a “database” is a data storage resourceand may store data structured as a text file, a table, a spreadsheet, arelational database (e.g., an object-relational database), a triplestore, a hierarchical data store, or any suitable combination thereof.Moreover, any two or more of the machines, databases, or devicesillustrated in FIG. 1 may be combined into a single machine, and thefunctions described herein for any single machine, database, or devicemay be subdivided among multiple machines, databases, or devices.

The network 108 may be any network that enables communication between oramong machines (e.g., server 110), databases, and devices (e.g., device101). Accordingly, the network 108 may be a wired network, a wirelessnetwork (e.g., a mobile or cellular network), or any suitablecombination thereof. The network 108 may include one or more portionsthat constitute a private network, a public network (e.g., theInternet), or any suitable combination thereof.

FIG. 2 is a block diagram illustrating modules (e.g., components) of theviewing device 101, according to some example embodiments. The viewingdevice 101 may include sensors 202, a display 204, a processor 206, anda storage device 208. For example, the viewing device 101 may be awearing computing device (e.g., glasses or helmet), a desktop computer,a vehicle computer, a tablet computer, a navigational device, a portablemedia device, or a smart phone of a user. The user may be a human user(e.g., a human being), a machine user (e.g., a computer configured by asoftware program to interact with the viewing device 101), or anysuitable combination thereof (e.g., a human assisted by a machine or amachine supervised by a human).

The sensors 202 may include, for example, a proximity or location sensor(e.g., Near Field Communication, GPS, Bluetooth, Wi-Fi), an opticalsensor (e.g., camera), an orientation sensor (e.g., gyroscope), an audiosensor (e.g., a microphone), or any suitable combination thereof. Forexample, the sensors 202 may include a rear facing camera and a frontfacing camera in the viewing device 101. It is noted that the sensors202 described herein are for illustration purposes; the sensors 202 arethus not limited to the ones described. The sensors 202 may be used togenerate internal tracking data of the viewing device 101 to determinewhat the viewing device 101 is capturing or looking at in the realphysical world.

The display 204 may include, for example, a touchscreen displayconfigured to receive a user input via a contact on the touchscreendisplay. In one example, the display 204 may include a screen or monitorconfigured to display images generated by the processor 206. In anotherexample, the display 204 may be transparent or semi-opaque so that theuser 102 can see through the display 204 (e.g., Head-Up Display).

The processor 206 may include an augmented reality application 216 forcreating a virtual display of real-time physical characteristics andpredicted interactions related to an object when the viewing device 101captures an image of an object or a subject. In one example embodiment,the augmented reality application 216 may include a recognition module214 and a physical characteristics and interaction module 218.

The recognition module 214 identifies the object that the viewing device101 is pointed to. The recognition module 214 may detect, generate, andidentify identifiers such as feature points of the physical object beingviewed or pointed at the viewing device 101 using an optical device ofthe viewing device 101 to capture the image of the physical object. Assuch, the recognition module 214 may be configured to identify one ormore physical objects. In one example embodiment, the recognition module214 may include a feature points module 302 and a contextual local imagemodule 304 as illustrated in FIG. 3. The identification of the objectmay be performed in many different ways. For example, the feature pointsmodule 302 may determine feature points of the object based on severalimage frames of the object. The feature points module 302 alsodetermines the identity of the object using any visual recognitionalgorithm. In another example, a unique identifier may be associatedwith the object. The unique identifier may be a unique wireless signalor a unique visual pattern such that the recognition module 214 can lookup the identity of the object based on the unique identifier from alocal or remote content database. In another example embodiment, therecognition module 214 includes a facial recognition algorithm todetermine an identity of a subject or object. The contextual local imagemodule 304 may be configured to determine whether the captured imagematches an image locally stored in a local database of images andcorresponding additional information (e.g., three-dimensional model andinteractive features) on the viewing device 101. In one embodiment, thecontextual local image module 304 retrieves a primary content datasetfrom the server 110, and generates and updates a contextual contentdataset based an image captured with the viewing device 101.

The physical characteristics and interaction module 218 determinesinformation or status including physical characteristics related to theobject and generates predicted interactions between identified objects.In one example embodiment, the physical characteristics and interactionmodule 218 may include a live data module 402, a physics modeling module404, and a visualization module 406 as illustrated in FIG. 4.

The live data module 402 communicates with sensors associated with theobjects to receive live data related to physical characteristics of theobjects. In another embodiment, the live data module 402 communicateswith the server 110 to receive a live data stream related to physicalcharacteristics of the objects. In another embodiment, the object maybroadcast live data from sensors internal to the object. For example,the object may include sensors embedded in it. The sensors can broadcastreal time data to the live data module 402 of the viewing device 101 andthe server 110. The live data module 402 may receive the live data afterauthentication with the object. In another example, the live data module402 can receive computed physical characteristics from the server 110,or live raw data from sensors 112.

The physics modeling module 404 may compute a physics model based on thelive data. For example, the physics model may include a predicted threedimensional trajectory using the velocity of an object based onobservational data or measured from sensors embedded in the object, andthe position and direction of the object. In one embodiment, the physicsmodeling module 404 generates a physics model for each identified objectcaptured by the viewing device 101. The physics modeling module 404further generates a physics model of interactions between the objects.Interactions may include for example collisions or the effects of afirst object on a second object. For example, the physics modelingmodule 404 may generate a physics model of the projected trajectories ofcollided objects or the intensity of impacts between objects. In anotherexample, the physics model may identify areas on the water surfaceaffected by a traveling boat. In another example, the physics model mayidentify areas on a wall affected by the temperature of an objectconnected to the wall. For example, the physics model may identify areasthat may be harmful to certain thermal sensitive objects because of thetemperature of a furnace. Other examples include determining locationsthat are safe or dangerous based on the physical characteristics of afirst object and a second object.

The visualization module 406 may generate a visualization of thephysical characteristics and interactions related to the objects. Thevisualization may include rendering a three-dimensional object (e.g.,model of a beating heart), a two-dimensional object (e.g., arrow orsymbols), displaying parts of the scene or objects in different colors.In one example embodiment, the visualization module 406 receives datafrom the server 110 to render the visualization. In another exampleembodiment, the visualization module 406 receives the rendered object.The visualization module 406 further determines the position and size ofthe rendered object to be displayed in relation to an image of theobject. For example, the visualization module 406 places the animatedheart with the size and position based on the image of the subject suchthat the animated heart is displayed on the chest of the subject withthe appropriate size. The visualization module 406 may track the imageof the subject and render the virtual object based on the position ofthe image of the subject in a display of the viewing device 101. Inanother example, the visualization module 406 may render portions of theobjects or the scene in different colors based on the physicalcharacteristics and the predicted interactions between the objects fromthe physics model.

In one example embodiment, the viewing device 101 accesses from a localmemory a visualization model (e.g., vector shapes) corresponding to theimage of the object (e.g., bridge). In another example, the viewingdevice 101 receives a visualization model corresponding to the image ofthe object from the server 110. The viewing device 101 then renders thevisualization model to be displayed in relation to an image of theobject being displayed in the viewing device 101 or in relation to aposition and orientation of the viewing device 101 relative to theobject. The augmented reality application 216 may adjust a position ofthe rendered visualization model in the display 204 to correspond withthe last tracked position of the object (as last detected either fromthe sensors 202 of the viewing device 101 or from the tracking sensors112 of the server 110).

The visualization module 406 may include a local rendering engine thatgenerates a visualization of a three-dimensional virtual object overlaid(e.g., superimposed upon, or otherwise displayed in tandem with) on animage of a physical object captured by a camera of the viewing device101 in the display 204 of the viewing device 101. A visualization of thethree-dimensional virtual object may be manipulated by adjusting aposition of the physical object (e.g., its physical location,orientation, or both) relative to the camera of the viewing device 101.Similarly, the visualization of the three-dimensional virtual object maybe manipulated by adjusting a position of the camera of the viewingdevice 101 relative to the physical object.

In one example embodiment, the visualization module 406 may retrievethree-dimensional models of virtual objects associated with a capturedreal world object. For example, the captured image may include a visualreference (also referred to as a marker) that consists of anidentifiable image, symbol, letter, number, machine-readable code. Forexample, the visual reference may include a bar code, a quick response(QR) code, or an image that has been previously associated with athree-dimensional virtual object (e.g., an image that has beenpreviously determined to correspond to the three-dimensional virtualobject).

In one example embodiment, the visualization module 406 may include amanipulation module that identifies the physical object (e.g., aphysical telephone), access virtual functions (e.g., increase or lowerthe volume of a nearby television) associated with physicalmanipulations (e.g., lifting a physical telephone handset) of thephysical object, and generate a virtual function corresponding to aphysical manipulation of the physical object.

The storage device 208 may be configured to store a database ofidentifiers of physical objects, tracking data, and correspondingvirtual user interfaces. In another embodiment, the database may alsoinclude visual references (e.g., images) and corresponding experiences(e.g., three-dimensional virtual objects, interactive features of thethree-dimensional virtual objects). For example, the visual referencemay include a machine-readable code or a previously identified image(e.g., a picture of a shoe). The previously identified image of the shoemay correspond to a three-dimensional virtual model of the shoe that canbe viewed from different angles by manipulating the position of theviewing device 101 relative to the picture of the shoe. Features of thethree-dimensional virtual shoe may include selectable icons on thethree-dimensional virtual model of the shoe. An icon may be selected oractivated by tapping on or moving the viewing device 101.

In one embodiment, the storage device 208 includes a primary contentdataset, a contextual content dataset, and a visualization contentdataset. The primary content dataset includes, for example, a first setof images and corresponding experiences (e.g., interaction withthree-dimensional virtual object models). For example, an image may beassociated with one or more virtual object models. The primary contentdataset may include a core set of images or the most popular imagesdetermined by the server 110. The core set of images may include alimited number of images identified by the server 110. For example, thecore set of images may include the images depicting covers of the tenmost popular magazines and their corresponding experiences (e.g.,virtual objects that represent the ten most popular magazines). Inanother example, the server 110 may generate the first set of imagesbased on the most popular or often scanned images received at the server110. Thus, the primary content dataset does not depend on objects orimages scanned by the recognition module 214 of the viewing device 101.

The contextual content dataset includes, for example, a second set ofimages and corresponding experiences (e.g., three-dimensional virtualobject models) retrieved from the server 110. For example, imagescaptured with the viewing device 101 that are not recognized (e.g., bythe server 110) in the primary content dataset are submitted to theserver 110 for recognition. If the captured image is recognized by theserver 110, a corresponding experience may be downloaded at the viewingdevice 101 and stored in the contextual content dataset. Thus, thecontextual content dataset relies on the context in which the viewingdevice 101 has been used. As such, the contextual content datasetdepends on objects or images scanned by the recognition module 214 ofthe viewing device 101.

In one embodiment, the viewing device 101 may communicate over thenetwork 108 with the server 110 to retrieve a portion of a database ofvisual references, corresponding three-dimensional virtual objects, andcorresponding interactive features of the three-dimensional virtualobjects. The network 108 may be any network that enables communicationbetween or among machines, databases, and devices (e.g., the viewingdevice 101). Accordingly, the network 108 may be a wired network, awireless network (e.g., a mobile or cellular network), or any suitablecombination thereof. The network 108 may include one or more portionsthat constitute a private network, a public network (e.g., theInternet), or any suitable combination thereof.

Any one or more of the modules described herein may be implemented usinghardware (e.g., a processor of a machine) or a combination of hardwareand software. For example, any module described herein may configure aprocessor to perform the operations described herein for that module.Moreover, any two or more of these modules may be combined into a singlemodule, and the functions described herein for a single module may besubdivided among multiple modules. Furthermore, according to variousexample embodiments, modules described herein as being implementedwithin a single machine, database, or device may be distributed acrossmultiple machines, databases, or devices.

FIG. 5 is a block diagram illustrating modules (e.g., components) of theserver 110. The server 110 includes a sensor interface 501, a processor502, and a database 510. The sensor interface 501 may communicate withthe sensors 112 (FIG. 1) to receive real time data.

The processor 502 may include an object identifier 504, a physicalcharacteristics identifier 506, a physical characteristics visualizationmodule 508, a physics modeling module 518, an objects interactionsmodule 520, and an objects interactions visualization module 522. Theobject identifier 504 may operate similarly to the recognition module214 of the viewing device 101. For example, the object identifier 504may identify objects 116, 118, 120, and 122 based on a picture beingreceived from the viewing device 101. In another example, the viewingdevice 101 already has identified objects 116, 118, 120, and 122 and hasprovided the identification information to the object identifier 504.

The physical characteristics identifier 506 may determine the physicalcharacteristics associated with the object identified. For example, ifthe object is bridge “abc” at location x, the physical characteristicsmay include the number of cars driven on the bridge during rush hours,the amount of stress on a particular span of the bridge, the temperatureof the pavement in the middle of the bridge. If the object is a bullet,the physical characteristics may include speed, point of origin, anddirection. If the object is a car, the physical characteristics mayinclude a make and model of the car, specifications associated with themake and model of the car. If the object is a bridge, the physicalcharacteristics may include load capacity and span length.

The physical characteristics visualization module 508 generates agraphical visualization based on the real time data of the physicalcharacteristics of identified objects 116, 118, 120, and 122. Forexample, the physical characteristics visualization module 508 maygenerate arrows or vectors corresponding to sections of a bridge. Inanother embodiment, the physical characteristics visualization module508 may generate a visual model based on the real time data of thephysical characteristics. For example, the visual model may include athree dimensional model of the bridge.

The physics modeling module 518 may include similar functionalities fromphysics modeling module 404 of the viewing device 101. For example, thephysics modeling module 518 may compute a physics model based on thelive data related to the identified objects 116, 118, 120, and 122. Forexample, the physics model may include a predicted three dimensionaltrajectory using the velocity of an object based on observational dataor measured from sensors embedded in the object, and the position anddirection of the object. In one embodiment, the physics modeling module518 generates a physics model for each identified object.

The objects interactions module 520 generates a physics model ofinteractions between the objects. Interactions may include for examplephysical interactions such as predicted collisions or the effects of afirst object on a second object. For example, the physics modelingmodule 518 may generate a physics model of the projected trajectories ofcollided objects or the intensity of impacts between objects. In anotherexample, the physics model may identify areas on the water surfaceaffected by a traveling boat. In another example, the physics model mayidentify areas on a wall affected by the temperature of an objectconnected to the wall. For example, the physics model may identify areasthat may be harmful to certain thermal sensitive objects because of thetemperature of a furnace. Other examples include determining locationsthat are safe or dangerous based on the physical characteristics of afirst object and a second object.

The objects interactions visualization module 522 may render portions ofthe objects or a scene captured with the viewing device 101 in differentcolors based on the physical characteristics and the predictedinteractions between the objects from the physics model. For example,areas of potential dangers from the predicted collisions may bedisplayed in a semi-opaque red color. Other types of interactionsvisualizations may include augmented information related to thepredicted interaction based on the physical characteristics of theidentified objects. In another example, the viewing device 101 may belooking at a machine and a tool. The objects interactions visualizationmodule 522 may model the interaction between the tool and the machine.The model generated indicates that another valve may need to be adjustedbased on the interaction between the tool and the machine. The objectsinteractions visualization module 522 may then generate a visualizationcomprising augmented information about the affected other valve oraugment the image of the other valve in a display of the viewing device101 by changing its color or generating an animation on the image of theother valve through the viewing device 101.

The database 510 may store a content dataset 512, a virtual contentdataset 514, and physical characteristics dataset 516. The contentdataset 512 may store a primary content dataset and a contextual contentdataset. The primary content dataset comprises a first set of images andcorresponding virtual object models. The object identifier 504determines that a captured image received from the viewing device 101 isnot recognized in the content dataset 512, and generates the contextualcontent dataset for the viewing device 101. The contextual contentdataset may include a second set of images and corresponding virtualobject models. The virtual content dataset 514 includes models ofvirtual objects to be generated upon receiving a notification associatedwith an image of a corresponding physical object. The physicalcharacteristics dataset 516 includes a table of identified objects withcorresponding physical characteristics (e.g., shapes, color, intrinsicproperties, extrinsic properties, temperature, weight, speed, etc).

FIG. 6 is a ladder diagram illustrating an example embodiment of asystem for visualizing physical characteristics in an augmented realityapplication of the viewing device 101 and server 110. At operation 602,the viewing device 101 identifies objects 116, 118, 120, and 122 in ascene and tracks data related to the objects being captured by theviewing device 101. At operation 604, the viewing device 101communicates the identity of the objects being tracked to the server110. At operation 606, the server 110 retrieves live data related to theobjects and computes physical characteristics of the objects. Atoperation 608, the server 110 generates a physics model for the one ormore objects. At operation 610, the server 110 generates a physics modelof objects interactions. At operation 612, the server 110 communicatesthe live characteristics data and the objects interactions model data tothe viewing device 101.

At operation 614, the viewing device 101 generates a visualization basedon the live data of physical characteristics of the objects. Forexample, a virtual heart may be displayed on an image of a chest of theidentified subject. In another example, the visualization may beprojected onto another object. For example, the viewing device 101points to a physical plastic heart model in the physician's office. Theviewing device 101 then starts to animate a virtual heart over the imageof the plastic heart model based on the live heartbeat of apatient/subject. As such, the viewing device 101 may recognize theobject as a plastic heart model and request live data from any sensorconnected to any patient. Furthermore, the viewing device 101 may bemoved around the physical plastic heart. The visualization isaccordingly modified based on the position of the viewing device 101relative to the plastic heart so as to show from a different angle.Thus, the visualization of live data from one object may be projected onan image of another object.

At operation 616, the viewing device 101 generates a visualization basedphysics model of objects interactions using the live data of physicalcharacteristics of the objects and physics model of one or more objects.For example, the visualization may include identifying areas of dangeror safety for the user of the viewing device 101 based on the physicsmodel of the predicted interactions of the objects (e.g., the car to theright of the user may be augmented with green color or information toidentify that hiding behind it would be safe from bullets). In anotherexample, the viewing device 101 captures a scene having a firstcontainer with chemical X, a second container with chemical Y, and anempty container. The viewing device 101 may identify the chemicals basedon identifiers on the respective containers. The viewing device 101 maygenerate a visualization of a simulated or predicted interaction of thechemical X and Y in the empty container. For example, the image of theempty container may be augmented with a virtual object showing theresulting reaction between chemical X and Y using a three dimensionalvirtual object (e.g., colored bubbling smoke rising from the emptycontainer, or a simulated explosion from the empty container).

FIG. 7 is a ladder diagram illustrating an example embodiment oftraining an augmented reality application at a viewing device. Atoperation 701, the viewing device 101 may generate data containing animage stream to the server 110. The image stream may include a livevideo feed from the viewing device 101. At operation 702, objects fromthe image stream are identified at the server 110. At operation 704, theserver 110 accesses live data from sensors (e.g., optical, thermal,etc.) related or associated with the corresponding objects. At operation706, the server 110 computes a physics model of one or more objects fromthe image stream. At operation 708, the server 110 computes a physicsmodel of interactions between two or more objects from the image stream.At operation 710, the server 110 generates a visualization of physicalcharacteristics of one or more identified objects from the image stream.At operation 712, the server 110 generates a visualization of physicalcharacteristics of one or more identified object interactions from theimage stream. At operation 714, the server 110 communicates thevisualization data to the viewing device 101. At operation 716, theviewing device 101 displays the augmented visualization in relation tothe image of the identified objects.

FIG. 8 is a flowchart illustrating an example operation of comparingvisualization physical characteristics of real world objects in anaugmented reality application. At operation 802, the viewing deviceidentifies two or more objects. At operation 804, the viewing deviceretrieves live physical characteristics data related to the identifiedobjects from a server (e.g., temperature, weight, direction, velocity,acceleration of an object). In one example embodiment, the viewingdevice may access historical data of the same object being viewed. Forexample, the historical data may include the height of the same plant(identified object) from previous days. At operation 806, the viewingdevice generates a visualization based on the live physicalcharacteristics data related to the identified objects. Thevisualization may include a result from a computation performed on thelive physical characteristics. At operation 808, the viewing devicemodifies the visualization based on changes in the live physicalcharacteristics data of the identified objects.

FIG. 9 is a flowchart illustrating an example operation of avisualization of physical characteristics in augmented reality at aviewing device. At operation 902, the viewing device identifies at leasttwo objects. At operation 904, the viewing device retrieves livephysical characteristics data related to the identified objects from aserver. At operation 906, the viewing device generates a physics modelfor each identified object. At operation 908, the viewing devicegenerates a physics model of object interactions between the identifiedobjects. At operation 910, the viewing device generates a visualizationof the predicted object interactions or an analysis based on thepredicted object interactions.

FIG. 10 is a flowchart illustrating an example operation ofvisualization of physical characteristics and interactions in augmentedreality at a server. At operation 1002, the server identifies a dynamicobject (e.g., an object that is physically moving or having a physicalcharacteristic that is changing, such as a change in temperature) in ascene or field of view captured by the viewing device. At operation1004, the server identifies sensors related to the identified object andgenerates a physics model of the dynamic object based on the live datafrom the corresponding sensors. The physics model allows for a predictedpath or trajectory, behavior, or reaction of the identified object. Thephysics model may also include a virtual three dimensional model of theidentified object. At operation 1006, the server identifies a staticobject within the same scene captured by the viewing device. Atoperation 1008, the server generates a model of the physicalinteractions between the dynamic object and the static object. Atoperation 1010, the server generates an augmented visualization based onthe model of physical interactions.

FIG. 11 is a diagram illustrating an example operation of avisualization of physical characteristics and interactions in augmentedreality applications. At operation 1102, the server identifies a firstand a second dynamic object (e.g., an object that is physically movingor having a physical characteristic that is changing, such as a changein temperature) in a scene or field of view captured by the viewingdevice. At operation 1104, the server identifies sensors related to theidentified objects and generates a physics model of the dynamic objectsbased on the live data from the corresponding sensors. The physics modelallows for a predicted path or trajectory, behavior, or reaction of theidentified objects. The physics model may also include a virtual threedimensional model of the identified object. At operation 1108, theserver generates a model of the physical interactions between thedynamic objects. At operation 1110, the server generates an augmentedvisualization based on the model of physical interactions.

FIG. 12 is a diagram illustrating an example operation of generating avisualization of interactions between a dynamic and a static object inan augmented reality application. The viewing device 101 may include ahandheld mobile device having a rear view camera 1202 and a touchsensitive display 1204. The viewing device 101 may be pointed at a scenecomprising a dynamic object (“object A”) 1206 and a static object(“object B”) 1208. The rear view camera 1202 captures an image of bothobjects 1206, 1208 and displays pictures 1210, 1212 of the objects 1206,1208 in the display 1204. Identifiers and tracking data related toobjects 1206, 1208 may be determined by the viewing device 101 based onthe pictures 1210, 1212 so as to identify the objects 1206, 1208. Theviewing device 101 communicates an identification of the identifiedobjects 1206, 1208 to the server 110. The server 110 accesses live datafrom physical characteristics sensors 112 coupled to or associated withthe objects 1206, 1208. The server 110 computes physical characteristicsbased on the live data and generates a physics model of predictedinteractions between the objects 1206, 1208 based on the live physicalcharacteristics. The server 110 then generates a visualization of thecomputed physical characteristics and predicted interactions. Forexample, the visualization may include a virtual arrow 1214 representingthe trajectory of object A 1206 on the display 1204. The virtual arrow1214 may have a different color or size based on the speed of object A1206. The visualization may also include a virtual image 1216representing the potential area of damage caused by the predictedinteraction. The virtual image 1216 may be for example a colored layeron the picture 1212 of the object B 1208.

The server 110 may send the visualization of the computed physicalinteractions to the viewing device 101. In another example, the viewingdevice 101 generates the visualization. The viewing device 101 displaysthe visualization on another layer on top of the pictures 1210, 1212.

FIG. 13 is a diagram illustrating another example operation ofgenerating a visualization of object interactions between dynamicobjects in an augmented reality application. The viewing device 101 maybe pointed at a scene comprising a first dynamic object (“object C”)1306 and a second dynamic object (“object D”) 1308. The rear view camera1202 captures an image of both objects 1306, 1308 and displays pictures1310, 1312 of the objects 1306, 1308 in the display 1204. Identifiersand tracking data related to objects 1306, 1308 may be determined by theviewing device 101 based on the pictures 1310, 1312 so as to identifythe objects 1306, 1308. The viewing device 101 communicates anidentification of the identified objects 1306, 1308 to the server 110.The server 110 accesses live data from physical characteristics sensors112 coupled to or associated with the objects 1306, 1308. The server 110computes physical characteristics based on the live data and generates aphysics model of predicted interactions between the objects 1306, 1308based on the live physical characteristics. The server 110 thengenerates a visualization of the computed physical characteristics andpredicted interactions. For example, the visualization may include avirtual arrow 1302 representing the trajectory of object C 1306 andanother virtual arrow 1304 representing the trajectory of object D 1308on the display 1204. The virtual arrows 1302 and 1304 may have adifferent color or size based on the speed of respective dynamic objectsC 1306 and D 1308. The visualization may also include a virtual object1305 representing the potential area of damage, explosion, or collisioncaused by the predicted interaction. The virtual object 1305 may be forexample an animated or static virtual two or three dimensional object.The server 110 may send the visualization of the computed physicalinteractions to the viewing device 101. In another example, the viewingdevice 101 generates the visualization. The viewing device 101 displaysthe visualization on another layer on top of the pictures 1310, 1312.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A hardware module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client, or server computersystem) or one or more hardware modules of a computer system (e.g., aprocessor or a group of processors) may be configured by software (e.g.,an application or application portion) as a hardware module thatoperates to perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarilyconfigured (e.g., programmed) to operate in a certain manner and/or toperform certain operations described herein. Considering embodiments inwhich hardware modules are temporarily configured (e.g., programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where the hardware modulescomprise a general-purpose processor configured using software, thegeneral-purpose processor may be configured as respective differenthardware modules at different times. Software may accordingly configurea processor, for example, to constitute a particular hardware module atone instance of time and to constitute a different hardware module at adifferent instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multipleof such hardware modules exist contemporaneously, communications may beachieved through signal transmission (e.g., over appropriate circuitsand buses) that connect the hardware modules. In embodiments in whichmultiple hardware modules are configured or instantiated at differenttimes, communications between such hardware modules may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware modules have access. Forexample, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors, not onlyresiding within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork and via one or more appropriate interfaces (e.g., APIs).

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry(e.g., a FPGA or an ASIC).

A computing system can include clients and servers. A client and serverare generally remote from each other and typically interact through acommunication network. The relationship of client and server arises byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other. In embodimentsdeploying a programmable computing system, it will be appreciated thatboth hardware and software architectures merit consideration.Specifically, it will be appreciated that the choice of whether toimplement certain functionality in permanently configured hardware(e.g., an ASIC), in temporarily configured hardware (e.g., a combinationof software and a programmable processor), or a combination ofpermanently and temporarily configured hardware may be a design choice.Below are set out hardware (e.g., machine) and software architecturesthat may be deployed, in various example embodiments.

Example Machine Architecture and Machine-Readable Medium

FIG. 14 is a block diagram of a machine in the example form of acomputer system 1400 within which instructions 1424 for causing themachine to perform any one or more of the methodologies discussed hereinmay be executed. In alternative embodiments, the machine operates as astandalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine may operate in thecapacity of a server or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a personal computer (PC), atablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), acellular telephone, a web appliance, a network router, switch or bridge,or any machine capable of executing instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 1400 includes a processor 1402 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 1404 and a static memory 1406, which communicatewith each other via a bus 1408. The computer system 1400 may furtherinclude a video display unit 1410 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 1400 also includes analphanumeric input device 1412 (e.g., a keyboard), a user interface (UI)navigation (or cursor control) device 1414 (e.g., a mouse), a disk driveunit 1416, a signal generation device 1418 (e.g., a speaker) and anetwork interface device 1420.

Machine-Readable Medium

The disk drive unit 1416 includes a machine-readable medium 1422 onwhich is stored one or more sets of data structures and instructions1424 (e.g., software) embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 1424 mayalso reside, completely or at least partially, within the main memory1404 and/or within the processor 1402 during execution thereof by thecomputer system 1400, the main memory 1404 and the processor 1402 alsoconstituting machine-readable media. The instructions 1424 may alsoreside, completely or at least partially, within the static memory 1406.

While the machine-readable medium 1422 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions 1424 or data structures. The term “machine-readablemedium” shall also be taken to include any tangible medium that iscapable of storing, encoding or carrying instructions for execution bythe machine and that cause the machine to perform any one or more of themethodologies of the present embodiments, or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example semiconductormemory devices (e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM), and flashmemory devices); magnetic disks such as internal hard disks andremovable disks; magneto-optical disks; and compact disc-read-onlymemory (CD-ROM) and digital versatile disc (or digital video disc)read-only memory (DVD-ROM) disks.

Transmission Medium

The instructions 1424 may further be transmitted or received over acommunications network 1426 using a transmission medium. Theinstructions 1424 may be transmitted using the network interface device1420 and any one of a number of well-known transfer protocols (e.g.,HTTP). Examples of communication networks include a LAN, a WAN, theInternet, mobile telephone networks, POTS networks, and wireless datanetworks (e.g., WiFi and WiMax networks). The term “transmission medium”shall be taken to include any intangible medium capable of storing,encoding, or carrying instructions for execution by the machine, andincludes digital or analog communications signals or other intangiblemedia to facilitate communication of such software.

Example Mobile Device

FIG. 15 is a block diagram illustrating a mobile device 1500, accordingto an example embodiment. The mobile device 1500 may include a processor1502. The processor 1502 may be any of a variety of different types ofcommercially available processors 1502 suitable for mobile devices 1500(for example, an XScale architecture microprocessor, a microprocessorwithout interlocked pipeline stages (MIPS) architecture processor, oranother type of processor 1502). A memory 1504, such as a random accessmemory (RAM), a flash memory, or other type of memory, is typicallyaccessible to the processor 1502. The memory 1504 may be adapted tostore an operating system (OS) 1506, as well as application programs1508, such as a mobile location enabled application that may provideLBSs to a user. The processor 1502 may be coupled, either directly orvia appropriate intermediary hardware, to a display 1510 and to one ormore input/output (I/O) devices 1512, such as a keypad, a touch panelsensor, a microphone, and the like. Similarly, in some embodiments, theprocessor 1502 may be coupled to a transceiver 1514 that interfaces withan antenna 1516. The transceiver 1514 may be configured to both transmitand receive cellular network signals, wireless data signals, or othertypes of signals via the antenna 1516, depending on the nature of themobile device 1500. Further, in some configurations, a GPS receiver 1518may also make use of the antenna 1516 to receive GPS signals.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the present disclosure. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in a single embodiment for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separate embodiment.

What is claimed is:
 1. A device comprising: an imaging device to capturean image; and an augmented reality application implemented by a hardwareprocessor of the device and configured to perform operations comprising:identifying a first and second object in the image; determining physicalproperties of the first and second object; generating a model of apredicted interaction between the first and second object based on thephysical properties of the first and second object; identifying an areain the image based on the model of the predicted interaction between thefirst and second object; and augmenting the image at the area in adisplay of the device.
 2. The device of claim 1, wherein the area in theimage includes a location of the predicted interaction between the firstand second object.
 3. The device of claim 1, wherein the area in theimage identifies a predicted collision between the first and secondobject.
 4. The device of claim 1, wherein the physical propertiescomprises a velocity and a direction of each of the first and secondobject.
 5. The device of claim 1, wherein the physical propertiescomprise one or more three-dimensional simulated trajectory paths of thefirst and second object.
 6. The device of claim 1, wherein theoperations further comprise: identifying a third object in the image;determining that the third object can withstand an impact based on themodel of the predicted interaction between the first and second object;and augmenting the image at another area based on the location of thethird object.
 7. The device of claim 1, wherein the operations furthercomprise: identifying a third object in the image; determining that thethird object can withstand an impact from the first or second object;and augmenting the image at another area based on the location of thethird object.
 8. The device of claim 1, wherein the area of theaugmented image includes at least one of a colored area, a shaded area,a patterned area, and a marked area.
 9. The device of claim 1, whereinthe operations further comprise: augmenting a first area of the imagewith a first color, the first area identifying an area affected by themodel of the predicted interaction between the first and second object;and augmenting a second area of the image with a second color distinctfrom the first color, the second area identifying an area not affectedby the model of the predicted interaction between the first and secondobject.
 10. The device of claim 9, wherein the size of the first andsecond area corresponds to an impact intensity between the first andsecond object.
 11. A computer-implemented method comprising: capturingan image with an imaging device; identifying a first and second objectin the image; determining physical properties of the first and secondobject; generating a model of a predicted interaction between the firstand second object based on the physical properties of the first andsecond object; identifying an area in the image based on the model ofthe predicted interaction between the first and second object; andaugmenting the image at the area in a display of the device.
 12. Themethod of claim 11, wherein the area in the image includes a location ofthe predicted interaction between the first and second object.
 13. Themethod of claim 11, wherein the area in the image identifies a predictedcollision between the first and second object.
 14. The method of claim11, wherein the physical properties comprise a velocity and a directionof each of the first and second object.
 15. The method of claim 11,wherein the physical properties comprise one or more three-dimensionalsimulated trajectory paths of the first and second object.
 16. Themethod of claim 11, further comprising: identifying a third object inthe image; determining that the third object can withstand an impactbased on the model of the predicted interaction between the first andsecond object; and augmenting the image at another area based on thelocation of the third object.
 17. The method of claim 11, furthercomprising: identifying a third object in the image; determining thatthe third object can withstand an impact from the first or secondobject; and augmenting the image at another area based on the locationof the third object.
 18. The method of claim 11, wherein the area of theaugmented image includes at least one of a colored area, a shaded area,a patterned area, and a marked area.
 19. The method of claim 11, whereinthe operations further comprise: augmenting a first area of the imagewith a first color, the first area identifying an area affected by themodel of the predicted interaction between the first and second object;and augmenting a second area of the image with a second color distinctfrom the first color, the second area identifying an area not affectedby the model of the predicted interaction between the first and secondobject.
 20. A non-transitory machine-readable medium comprisinginstructions that when executed by one or more processors of a machinecause the machine to perform operations comprising: capturing an imagewith an imaging device; identifying a first and second object in theimage; determining physical properties of the first and second object;generating a model of a predicted interaction between the first andsecond object based on the physical properties of the first and secondobject; identifying an area in the image based on the model of thepredicted interaction between the first and second object; andaugmenting the image at the area in a display of the device.